package org.study.module.common;

import java.util.ArrayList;
import java.util.List;

public abstract class AbstractConfigBuilder {
    protected List<String> configs;

    public List<String> toList() {
        return configs;
    }

    public AbstractConfigBuilder() {
        configs = new ArrayList<>();
    }

    public void addConfig(String config) {
        configs.add(config);
    }

    public void addConfigs(List<String> config) {
        configs.addAll(config);
    }

    /**
     * 添加属性
     *
     * @param name  属性名称
     * @param value 属性值
     */
    public void addProperty(String message, String name, String value) {
        addMessage(message);
        addProperty(name, value);
    }
    public void addMessage(String message){
        configs.add("    <!-- " + message + " -->");
    }

    /**
     * 添加属性
     *
     * @param name  属性名称
     * @param value 属性值
     */
    public void addProperty(String name, String value) {
        configs.add("    <property>");
        configs.add("        <name>" + name + "</name>");
        configs.add("        <value>" + value + "</value>");
        configs.add("    </property>");
    }

    /**
     * 添加配置头文件信息
     */
    public void addConfigHead() {
        configs.add("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
        configs.add("<?xml-stylesheet type=\"text/xsl\" href=\"configuration.xsl\"?>");
        configs.add("<configuration>");
    }

    /**
     * 添加配置尾部信息
     */
    public void addConfigEnd() {
        configs.add("</configuration>");
        configs.add("EOF");
    }
}
